home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Skunkware 98
/
Skunkware 98.iso
/
src
/
interp
/
perl5.005.tar.gz
/
perl5.005.tar
/
perl5.005
/
djgpp
/
fixpmain
< prev
Wrap
Text File
|
1998-07-11
|
964b
|
31 lines
#!perl -w
# Fix perlmain.c under DOS (short & case insensitive filenames).
# Called from Makefile.aperl when needed.
# You don't need this when LFN=y.
use Config;
open (PERLM,"<perlmain.c") or die "Can't load perlmain.c: $!";
open (MAKEFILE,"<makefile.pl") or die "Can't load makefile.pl: $!";
undef $/;
$perlmain=<PERLM>;
$makefile=<MAKEFILE>;
($_) = $makefile =~ /\bNAME\b.*=>\W*([\w\:]+)/; # extract module name
$badname=join ("__",map {lc substr ($_,0,8)} split /:+/); # dosify
$perlmain =~ s/^.*boot_$badname.*$//gm if $badname; # delete bad lines
@exts=split (" ",$Config{known_extensions});
for $realname (@exts,'DynaLoader')
{
$dosname=substr (lc $realname,0,8);
$perlmain =~ s/\bboot_$dosname/boot_$realname/gm;
$perlmain =~ s/\b$dosname(::bootstrap)/$realname$1/gm;
}
#DynaLoader is special
$perlmain =~ s/(DynaLoader:\:boot)strap/$1_DynaLoader/gm;
open (PERLM,">perlmain.c") or die "Can't write perlmain.c: $!";
print PERLM $perlmain;